Jump To:
Technical Q&As
Networking capabilities in Mac OS X include support for the major protocols and services. Developers can gain access to them through sockets and Core Foundation, as well as through the higher-level Carbon and Cocoa APIs.

Networking Resources
A guided introduction and learning path to developing network-capable applications for Mac OS X.   Essential information for developers using Apple's networking environment.   Descriptions of the programming interface elements for networking, organized by framework.
Document Descriptions
On Off
Display

Sort by
Title
Sort by
Topic
Sorted by
Date
Resolves may return an IPv6 address in Panther (HTML)
QA1298: Explains why you get an IP address of 0.0.0.0 when resolving a Rendezvous service.
Carbon, Cocoa, Core Foundation, Rendezvous 2005-01-10
Sending an Email (HTML)
QA1084: Shows how to create an email in the user's prefered email application.
Internet & Web 2004-11-05
Rendezvous enforces the TXT record format in Panther (HTML)
QA1306: Explains how mDNSResponder enforces the proper TXT record format in Panther.
Carbon, Cocoa, Core Foundation, Darwin, Rendezvous 2004-07-14
Rendezvous service types used in Mac OS X (HTML)
QA1312: Provides a list of common Rendezvous service types used in Mac OS X.
Rendezvous 2004-07-14
Updating the TXT record of a Rendezvous service (HTML)
QA1302: Explains how to update a Rendezvous TXT record while running on either Jaguar or Panther.
Carbon, Cocoa, Core Foundation, Darwin, Rendezvous 2004-07-14
Getting a Packet Trace (HTML) ()
QA1176: Lists tools available for looking at the network packets on the wire.
AirPort/802.11, AppleScript, Carbon, Cocoa, Core Foundation, Darwin, Device Drivers, Hardware, Internet & Web, Mac OS X Server, Printing, Rendezvous, Security 2004-07-13
Discovering all advertised Rendezvous service types (HTML)
QA1337: Explains how to discover all Rendezvous service types being advertised on the local network.
Carbon, Cocoa, Core Foundation, Darwin, Hardware, Rendezvous 2004-06-01
Generating an NMI Without a Programmer's Switch (HTML) ()
QA1264: Explains how to generate a non-maskable interrupt (NMI) on CPUs without programmer's switches.
Device Drivers 2004-04-26
Rendezvous enforces the service type format in Panther (HTML)
QA1198: Explains why registering a Rendezvous service might fail on Panther.
Carbon, Cocoa, Rendezvous 2004-03-23
The Rendezvous Name is not the Rendezvous name (HTML) ()
QA1228: Explains why you should use the Computer Name when advertising a Rendezvous service.
Carbon, Cocoa, Rendezvous 2004-03-05
Clearing mDNSResponder's cached records (HTML)
QA1310: Clearing the Rendezvous service cache (mDNSResponder's cached records) for testing purposes.
Rendezvous 2004-02-11
Duplicate Rendezvous services while browsing (HTML)
QA1333: Explains how to work with multiple network interfaces when browsing for Rendezvous services.
Rendezvous 2004-02-06
The state of mDNSResponder (HTML)
QA1339: Explains how to obtain information regarding the internal state of mDNSResponder.
Darwin, Hardware, Rendezvous 2004-02-06
Use empty string for Rendezvous domains (HTML)
QA1331: Explains what to specify for the domain parameter when using Rendezvous API's.
Rendezvous 2004-02-06
Downloading through a proxy server in Mac OS X (HTML)
QA1296: Explains when downloading through a proxy server will work, and when it will fail.
Carbon, Cocoa, Core Foundation 2003-10-29
URL Access vs. CFNetwork (HTML)
QA1291: Explains when to choose URL Access or CFNetwork when downloading files from within your application.
Carbon 2003-10-29
Installing an I/O Kit KEXT Without Rebooting (HTML)
QA1319: Describes the state of the art of installing I/O Kit kernel extensions (KEXTs) without requiring a restart.
Device Drivers 2003-10-28
Registering a Rendezvous service multiple times (HTML)
QA1311: Explains why registering the same Rendezvous service twice on the same machine doesn't cause a name conflict.
Rendezvous 2003-10-23
Rendezvous TXT record rate limiting in Panther (HTML)
QA1293: Explains how mDNSResponder implements TXT record rate limiting in Panther.
Carbon, Cocoa, Rendezvous 2003-10-23
Don't forget to cancel your Rendezvous resolve (HTML)
QA1297: Explains why it's important to cancel a Rendezvous resolve operation.
Carbon, Cocoa, Rendezvous 2003-10-15
NSL and how it relates to Rendezvous (HTML)
QA1299: Explains the relationship between NSL and Rendezvous.
Rendezvous 2003-09-18
Rendezvous and wake from sleep (HTML)
QA1290: Explains why applications that use Rendezvous should stay registered and continue browsing on sleep.
Carbon, Cocoa, Rendezvous 2003-09-18
PPPoE Server for Testing (HTML) ()
QA1252: Describes how to configure Mac OS X as a PPPoE server for testing purposes.
Carbon, Cocoa 2003-04-11
Internet Connect Speed (HTML) ()
QA1165: Describes how to get the modem connection speed from the System Configuration framework dynamic store.
Carbon, Internet & Web 2003-03-26
Accessing HTTPS Proxy Settings (HTML) ()
QA1234: Describes how to programatically access Secure Web Proxy information.
Carbon, Mac OS X Server 2003-02-19
URL Access and the Missing Progress Dialog (HTML) ()
Deprecated - QA1140: Explains a known bug in URL Access related to progress dialogs.
Carbon 2002-09-23
SCSIAction and IOSCSIUserClient on Mac OS X 10.2 (HTML) ()
QA1201: Describes migrating to a new API for SCSI Parallel devices starting with Mac OS X 10.2.
Printing 2002-09-13
Setting request headers in URL Access (HTML) ()
Deprecated - QA1073: Explains how to work around a bug in URL Access when setting request headers.
Carbon 2002-09-10
Retain Counts of io_object_t Objects in IOKit.framework (HTML) ()
QA1195: Distinguishes between the retain counts of an I/O Kit kernel object and its io_object_t user space proxy.
Printing 2002-09-04
IODeviceTree & the IORegistry (HTML) ()
QA1120: Describes the IODeviceTree plane in the Mac OS X IORegistry.
Device Drivers 2002-02-13
Power Management; Policy Maker vs. Power Controller (HTML) ()
QA1121: Describes the differences between a Power Management Policy Maker and a Power Management Power Controller.
Device Drivers 2002-02-13
IOKit Framework Headers (HTML) ()
QA1107: Describes the differences between the headers in IOKit.framework and the I/O Kit headers in Kernel.framework.
Device Drivers, Hardware 2002-01-15
Getting the User and Computer Name (HTML)
QA1078: Describes how to get the user and computer name on Mac OS X.
Carbon, Core Foundation 2001-10-30
How to use URL Access with proxy servers (HTML)
Deprecated - QA1074: Explains how to use URL Access with proxy servers.
Carbon 2001-10-02
Open Transport Libraries (HTML) ()
NW18: Lists the Open Transport libraries and what to link with for PowerPC and 68K.
Carbon 2000-11-03
The "chosen" node in the device tree (HTML)
HW88: Describes how to find the "chosen" node in the Open firmware device tree.
Device Drivers, Hardware, Internet & Web 2000-09-05
The "packages" node in the device tree (HTML)
HW90: Describes the "packages" node in the Open Firmware device tree.
Hardware 2000-09-05
Open Transport Versions (HTML)
NW64: Lists the current versions of Open Transport and their features.
Carbon 2000-05-08
Is the Open Firmware device tree object oriented? (HTML)
HW80: Discusses the object-oriented attributes of the Open Firmware device tree.
Device Drivers, Hardware 1999-11-15
When to use PCMCIA, PC Card, and CardBus (HTML)
HW77: Explains the differences between PCMCIA, PC Card, and CardBus.
Device Drivers, Hardware 1999-11-15
Raw IP and Open Transport 2.5.x (HTML)
Deprecated - NW63: Discusses Open Transport 2.5's change to the behavior of raw IP endpoints with IP_HDRINCL set.
Carbon 1999-10-25
Are the Name Registry device tree nodes unique? (HTML)
Deprecated - HW64: Discusses whether Name Registry nodes copied from the Open Firmware device tree are unique.
Device Drivers 1999-10-11
Launching the Default Internet Browser (HTML) ()
NW60: Shows with sample code how to invoke a user's default browser to open a specific URL.
Internet & Web 1999-10-11
Sample code for allocating an amount of dictionary space (HTML)
HW71: Discusses the allocation and the setting of memory for Dictionary space in Open Firmware.
Hardware 1999-10-11
What is the "dump" word and how do I use it? (HTML)
HW68: Describes the function of the Open Firmware word "dump" and how it can be used.
Hardware 1999-10-11
What numeric base is the default for the Open Firmware user interface? (HTML)
HW65: Describes how the default numeric base used by the Open Firmware user interface is hexadecimal.
Hardware 1999-10-11
Allocate and Disk Full Error (HTML) ()
FL12: Discusses a problem with AFP volumes displaying incorrect free space, and returning disk full errors.
Carbon, Cocoa 1999-07-21
TCP/IP Option Sizes (HTML) ()
NW62: Enumerates the TCP/IP options and their sizes for Open Transport.
Carbon, Device Drivers, Hardware, Internet & Web 1999-04-26
Determining Open Firmware configuration variables (HTML) ()
HW56: Discusses how to determine the Open Firmware variables on a system.
Device Drivers, Hardware 1999-03-29
Expansion ROM device properties (HTML) ()
HW50: Describes the Open Firmware properties that should be included in a boot device's expansion ROM.
Device Drivers, Hardware 1999-03-29
Getting started with Forth (HTML) ()
HW53: Describes where FCode driver developers can get information about the Forth programming language.
Device Drivers, Hardware 1999-03-29
Why did the name of the PCI bridge change? (HTML) ()
HW59: Explains the name change of the PCI bridge to the generic name "pci" in Open Firmware.
Hardware 1999-03-29
fBroadCastAddr Always Zero (HTML) ()
Deprecated - NW58: Explains why the fBroadcastAddr field may be zero after a call to OTInetGetInterfaceInfo and includes the workaround.
Carbon 1999-03-08
Difference between using Restart or Shut Down in the Finder's Special menu in Open Firmware (HTML) ()
HW47: Explains the differences between using Restart or Shut Down on Open Firmware
Hardware 1999-02-15
What are snag keys in Open Firmware? (HTML) ()
HW35: Explains Open Firmware snag keys, including examples of their function.
Hardware 1999-02-15
Determining if a Drive is a Network Volume (HTML) ()
NW09: Shows how to determine if a volume is mounted over the network.
Carbon 1998-06-01
Numerous Small Packet Exchanges Resultin Poor TCP Performance (HTML) ()
NW26: Explains why numerous small package exchanges result in poor TCP performance.
Carbon 1998-05-25
Open Transport Errors -3151/-3160 and Option Management (HTML) ()
NW54: Gives possible causes of errors -3151 and -3160 when making an OptionManagement call to set an endpoint.
Carbon 1998-04-12
Receiving UDP Broadcasts (HTML) ()
Deprecated - NW53: Explains why UDP endpoints may never receive UDP broadcast messages.
Carbon 1997-11-17
OTScheduleDeferredTask When Task Running (HTML) ()
NW52: Describes what happens when you use OTScheduleDefferedTask to schedule a task that is running.
Carbon, Cocoa, Device Drivers 1997-10-13
68K Open Transport Code on Power Macintoshes (HTML)
Deprecated - NW48: Explains why running Open Transport 68K code on a PowerPC may not always work.
Carbon 1997-03-14
Changing the TCP Window Size (HTML)
NW47: Describes how to change the TCP window size in Open Transport.
Carbon, Cocoa, Device Drivers 1997-03-14
T_DATA_REQ vs M_DATA TPI Message Blocks (HTML) ()
NW42: Explains why OT passes data to a TPI module using M_DATA message blocks instead of M_PROTO+T_DATA_REQ.
Carbon, Cocoa, Core Foundation, Device Drivers, Hardware, Internet & Web 1996-10-25
Server Endpoint 'qlen' Limit (HTML) ()
Deprecated - NW38: Tells how to determine the maximum 'qlen' value which limits the number of supported handoff endpoints.
Carbon 1996-08-21
Calling CloseOpenTransport When Writing an App (HTML) ()
Deprecated - NW36: Identifies a bug in Open Transport 1.1 which means your application must CloseOpenTransport before quitting.
Carbon 1996-07-03
OTScheduleSystemTask Cleanup (HTML) ()
Deprecated - NW37: States the proper way to clean up any pending system tasks scheduled with OTScheduleSystemTask.
Carbon 1996-07-03
Aborting a OTConnect in Progress (HTML)
Deprecated - NW29: Describes the proper way to abort OTConnect, and why after calling OTSndDisconnect you may receive "kOTOutStateErr".
Carbon 1996-05-14
Handing Off TCP Connections to a Different Port (HTML) ()
NW25: Explains that a passive TCP connection cannot hand off the connection to a different port address.
Carbon 1996-05-14
PSetSelfSend in Classic AppleTalk vs. Open Transport AppleTalk (HTML) ()
NW23: Describes the relationship between PSetSelfSend in Classic AppleTalk and Open Transport AppleTalk.
Carbon 1996-05-14
Synchronous TCP OTConnect Client Call Completes Before Server Responds (HTML) ()
Deprecated - NW24: Explains why an OTConnect call will complete before the server responds.
Carbon 1996-05-14
TCP Application Acquires Different Port Address After Relaunch (HTML)
Deprecated - NW28: Explains why a server application acquires a different TCP/IP port address after restarting.
Carbon 1996-05-14
TCP Option Sizes (HTML)
Deprecated - NW27: Tells where to get more information on TCP Option sizes and setting TCP Options.
Carbon 1996-05-14
Error -3168 (kOTStateChangeErr) and Handoff Endpoints (HTML) ()
Deprecated - NW22: Explains why a kOTStateChangeErr -3168 occurs when there is a handoff endpoint involved.
Carbon 1996-04-08
Closing the Connection: OpenTransport (HTML) ()
Deprecated - NW20: Describes an orderly disconnect situation in Open Transport between two nodes.
Carbon 1996-03-04
Open Transport Error -3208: kEBADFErr (HTML) ()
NW21: Explains why a call to OTSnd may result in a kEBADFErr -3208.
Carbon 1996-03-04
PCI Type 1 Cycles (HTML)
HW26: Describes the circumstances when the PowerMac generates a Configuration Type 1 command.
Hardware 1995-07-15